﻿#define _CRT_SECURE_NO_WARNINGS 1
#include"SList.h"

void STLNodeTest1()
{
	SLTNode* phead = NULL;
	SListPushFront(&phead, 1);
	SListPushFront(&phead, 2);
	SListPushFront(&phead, 3);

	SListPrint(phead);


}
void STLNodeTest2()
{
	SLTNode* phead = NULL;
	SListPushFront(&phead, 1);
	SListPushFront(&phead, 2);
	SListPushFront(&phead, 3);
	SListPushFront(&phead, 4);
	SListPrint(phead);
	SLTNode* res = reverseList(phead);
	 SListPrint(res);
	//SlistDestroy(&phead);
	//SListPrint(phead);

}


void STLNodeTest3()
{
	SLTNode* phead = NULL;
	SListPushBack(&phead, 5);
	SListPushBack(&phead, 6);
	SListPushBack(&phead, 7);
	SListPrint(phead);

	SListPopBack(&phead);
	SListPrint(phead);

	SListPopBack(&phead);
	SListPrint(phead);

	SListPopBack(&phead);
	SListPrint(phead);


	//SListPopBack(&phead);
	//SListPrint(phead);
}



void STLNodeTest4()
{
	SLTNode* phead = NULL;
	SListPushBack(&phead, 5);
	SListPushBack(&phead, 6);
	SListPushBack(&phead, 7);
	SListPushBack(&phead, 8);
	SListPushBack(&phead, 9);
	SListPrint(phead);
	SLTNode* pos = SListFind(&phead, 7);
	//if (pos)
	//{
	//	//可以充当修改的用作
	//	pos->data = pos->data*10;
	//	printf("找到了\n");
	//}
	//else
	//{
	//	printf("没找到\n");
	//}
	//SListPrint(phead);

	//SListErase(&phead, pos);
	//SListPrint(phead);

	SListEraseBack(&phead, pos);
	//注意把pos在外面置空
	SListPrint(phead);

}



void STLNodeTest6()
{
	SLTNode* phead = NULL;
	SListPushFront(&phead, 1);
	SListPushFront(&phead, 2);
	SListPushFront(&phead, 3);
	SListPushFront(&phead, 4);
	SListPushFront(&phead, 5);
	SListPushFront(&phead, 6);
	SListPushFront(&phead, 7);
	SListPrint(phead);
	SLTNode* res = middleNode(phead);
	SListPrint(res);
	//SlistDestroy(&phead);
	//SListPrint(phead);

}

void STLNodeTest7()
{
	SLTNode* phead = NULL;
	SListPushFront(&phead, 1);
	SListPushFront(&phead, 2);
	SListPushFront(&phead, 3);
	SListPushFront(&phead, 4);
	SListPushFront(&phead, 5);
	SListPushFront(&phead, 6);
	SListPushFront(&phead, 7);
	SListPrint(phead);
	SLTNode* res = FindKthToTail(phead,7);
	SListPrint(res);
	//SlistDestroy(&phead);
	//SListPrint(phead);

}


int main()
{
	//STLNodeTest1();
	//STLNodeTest6();
	STLNodeTest7();

	return 0;
}















//void Swapi(int* x, int* y)
//{
//	int z = *x;
//	*x = *y;
//	*y = z;
//}
//void Swapi1(int* x, int* y)
//{
//	int z = *x;
//	*x = *y;
//	*y = z;
//}
//
//void Swapi2(int** x, int** y)
//{
//	int *z = *x;
//	*x = *y;
//	*y = z;
//}


//int main()
//{
//	//---------------------------------test-----------------------
//	//int x = 0;
//	//int y = 1;
//	//Swapi(&x,&y);
//	//int* px = &x;
//	//int* py = &y;
//	//Swapi1(px, py);
//	//Swapi2(&px, &py);
//	//----------------------------------------------------------=
//	STLNodeTest1();
//	return 0;
//}
